/*
 *    Copyright (c) 2018-2025, boss All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the boss developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: boss
 */

package com.hopes.bizz.basic.safe.service;

import com.hopes.bizz.basic.drive.dto.BaseAuditDTO;
import com.hopes.bizz.basic.safe.dto.BaseThreeMeantimeExcelDTO;
import com.hopes.bizz.basic.safe.entity.BaseThreeMeantimeEntity;
import com.hopes.bizz.basic.safe.entity.BaseThreeMeantimeHandleRecordEntity;
import com.hopes.bizz.basic.safe.vo.BaseThreeMeantimeExcelVO;
import com.hopes.bizz.basic.safe.vo.BaseThreeMeantimeGisVo;
import com.hopes.boss.act.base.FlowService;
import com.hopes.boss.common.service.ExcelService;
import org.springframework.transaction.annotation.Transactional;

/**
 * 项目三同时管理
 *
 * @author pig
 * @date 2023-10-30 09:59:17
 */
public interface BaseThreeMeantimeService extends ExcelService<BaseThreeMeantimeExcelDTO, BaseThreeMeantimeExcelVO, BaseThreeMeantimeEntity>, FlowService<BaseThreeMeantimeEntity> {

    // 三同时gis统计
    BaseThreeMeantimeGisVo getThreeMeantime();


    /**
     * @Description 项目三同时审批
     * @Author ljh
     * @Date 2023/8/10
     **/
    void handlerAudit(BaseAuditDTO baseAuditDTO);

    /**
     * 项目三同时提交申请
     */
    void handleThreeMeantimeSubmit(Long id);

    /**
     * 项目三同时进度处理记录
     */
    @Transactional(rollbackFor = Exception.class)
    void savePlan(BaseThreeMeantimeHandleRecordEntity baseThreeMeantimeHandleRecord);
}
